SonarQube le dice que esta parte del código contiene lógica duplicada. Esto no significa necesariamente que el código en sí esté copiado y pegado, sino que, conceptualmente, sucede exactamente lo mismo en varios lugares. En este caso, se repite claramente la lógica de devolver un valor String con respecto al valor int .
Una solución simple aquí:
String[] array = { "One", "Two", "Three", "Four", "Five", "Six" }; if (i >= 1 && i <= array.length) { return array[i - 1]; }SonarRules para proyectos Java:
Una pieza de código se considera duplicada en cuanto existe la misma secuencia de 10 sentencias sucesivas cualquiera que sea el número de tokens y líneas. Este umbral no se puede anular.
Necesita modificar ese múltiplo si las secciones de retorno
public class Test { private static final String[] WORDS; static { WORDS = new String[] { "One", "Two", "Three", "Four", "Five", "Six" }; } public String intToEnglishValue(final int number) { return number > 0 && number <= WORDS.length ? WORDS[number - 1] : ""; } }